Neste problema, você implementará o algoritmo de Zeller, que calcula o dia da semana em que uma determinada data caiu (ou cairá).
As três primeiras linhas de seu programa devem configurar variáveis para conter o ano, mês e dia em questão (chame-os de year
, month
e day
). Portanto, as três primeiras linhas do seu programa devem ser semelhantes a, por exemplo:
year = 2017
month = 1 # 1 = janeiro, 2 = fevereiro, ..., 12 = dezembro
day = 9
Em notação matemática, vamos chamá-los de $y$, $m$ e $d$.
O algoritmo de Zeller também requer o uso de alguns outros valores. Em notação matemática:
Com essas definições, o dia da semana em que cai a data fornecida ($w$) é dado pelo seguinte: $$w=\left(d+\left\lfloor\frac{13(m_1+1)}{5}\right\rfloor+y_2+\left\lfloor\frac{y_2}{4}\right\rfloor+\left\lfloor\frac{c}{4}\right\rfloor-2c\right)\mod 7$$ onde $w=0$ corresponde a um sábado, $1$ a um domingo, ... e $6$ a uma sexta-feira. Observe que os símbolos $\lfloor$ e $\rfloor$ na equação matemática acima denotam o operador "floor" (divisão inteira); eles não devem ser confundidos com colchetes em Python.
Seu programa deve implementar o algoritmo de Zeller e deve ligar à variável out
um único número $w$ para a data fornecida (especificado pelas variáveis year
, month
e day
).
float
para int
trunca, portanto, para números positivos, isso é equivalente ao operador floor ($\lfloor\rfloor$).year
, month
, day
e out
, em vez de dar-lhes outros nomes. Variáveis diferentes dessas quatro podem ser chamadas de onde você quiser.É uma boa ideia experimentar a data de hoje como ponto de partida. Se essa for a resposta certa, tente os exemplos da página da Wikipedia ou de seu aniversário. Experimente primeiro à mão e, em seguida, executando Python. Se tudo sair correto, você pode estar pronto!
Quando estiver pronto (depois de ter simulado manualmente e estiver convencido de que seu programa fará a coisa certa), faça upload do seu arquivo Python no Problema 0.4 no Gradescope. Lembre de nomear seu arquivo p0_4.py
.